package com.gz.springboot.exception;

import lombok.extern.slf4j.Slf4j;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.ModelAndView;

import java.util.logging.Handler;

@Slf4j
@ControllerAdvice //全局异常处理  会注入到spring容器
public class GlobalExceptionHandler {

    @ExceptionHandler(value = {ArithmeticException.class,
            NullPointerException.class})//如果没这里没有自定义异常，那么自定义异常走默认的自定义异常处理
    public String handlerArithmeticException(Model model, Exception e, HandlerMethod handlerMethod) {
        //如果debug，那么是到ExceptionHandlerExceptionResolver里面处理
        log.info(e.getMessage());
        model.addAttribute("msg", e.getMessage());
        log.info("异常发生的方法是: "+handlerMethod.getMethod());
        return "/error/global";
    }

}
